using SheLife.Domain.Entities;

namespace SheLife.Application.Interfaces;

public interface IHabitRecordService
{
    Task<HabitRecord?> GetHabitRecordByIdAsync(int id);
    Task<IEnumerable<HabitRecord>> GetHabitRecordsByUserIdAsync(int userId);
    Task<IEnumerable<HabitRecord>> GetHabitRecordsByHabitIdAsync(int habitId);
    Task<IEnumerable<HabitRecord>> GetHabitRecordsByUserIdAndDateRangeAsync(int userId, DateTime startDate, DateTime endDate);
    Task<HabitRecord?> GetHabitRecordByUserIdAndHabitIdAndDateAsync(int userId, int habitId, DateTime date);
    Task<HabitRecord> CreateHabitRecordAsync(HabitRecord habitRecord);
    Task<HabitRecord> UpdateHabitRecordAsync(HabitRecord habitRecord);
    Task<bool> DeleteHabitRecordAsync(int id);
}